# 完成企业微信 app 相关的设置
from appium import webdriver


from wewrok_app_po.Base.base_page import BasePage


'''
1. 先搭建空架子，不填写内容，运行通过，可能会有循环导入的问题，把导入放在方法中即可
2. 添加内容，在 wework_app.py 中完成 driver 的实例化，并且在页面跳转的时候，完成 driver 的传递
3. 各个页面，使用构造函数来接受传递过来的 driver
'''
'''
4.封装了基础配置的类 base_page.py
5.完成了 appium 底层操作的封装，和一些常用方法的封装
6.WeWorkApp 继承了 BasePage，其他各个 Page 继承 WeWork，完成了 driver 的传递和基础方法的调用
7 分离了定位表达式和具体的方法，在各个页面中调用 BasePage 中封装的查找元素以及相关操作的方法

'''

class WeWorkApp(BasePage):
    # 启动app
    def start(self):
        # 定义一个json串
        caps = {}
        # 设置app的平台 android 或者 ios
        caps["platformName"] = "android"
        # 设置设备名称
        caps["appium:deviceName"] = "wework"
        # 设置设备包名
        caps["appium:appPackage"] = "com.tencent.wework"
        # 设置app的启动页
        caps["appium:appActivity"] = ".launch.WwMainActivity"
        # 不清除缓存启动app
        caps["appium:noReset"] = "true"
        # 不重启app
        caps["appium:dontStopAppOnReset"] = "true"
        # 设置版本
        caps["platformVersion"] = '6.0'
        # 动态设置页面刷新等待时间
        caps['settings[waitForIdleTimeout]'] = 1

        # client 与 server端建立连接的代码
        self.driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", caps)
        # 设置全局隐式等待时间
        self.driver.implicitly_wait(10)
        return self
    def restart(self):
        # 重启app
        # 关闭app
        self.driver.close()
        # 激活后台的app
        self.driver.activate_app("com.tencent.wework")
        return self

    def stop(self):
        self.driver.back()
        self.driver.quit()


    def goto_main_page(self):
        from wewrok_app_po.Page.main_page import MainPage
        return MainPage(self.driver)

